<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // function* test(){
        //     console.log('iu');
        //     yield '李知恩';
        //     console.log('暂停之后可以继续执行');
        //     yield '第二次';
        //     console.log('继续');
        //     yield '第三次';
        // }
        // let result = test();
        // console.log(result);
        // console.log(result.next());
        // console.log(result.next());
        // console.log(result.next());
        // console.log(result.next());
        // function* foo(){
        //     yield '第一次';
        //     yield '第二次';
        //     yield '第三次';
        // }
        // let test = foo();
        // console.log(test);
        // console.log(test.next());
        // console.log(test.next());
        // console.log(test.next());
        // console.log(test.next());
        // yield 里的值就是value 需要调用next（）方法来得到返回值
        // let obj = {};
        // obj[Symbol.iterator] = function* (){
        //     yield '第一次';
        //     yield '第二次';
        //     yield '第三次';
        // }
        // for(let i of obj){
        //     console.log(i);
        // }
        // console.log(obj);
        // function* foo(){
        //     yield '第一次';
        //     yield '第二次';
        //     yield '第三次';
        // }
        // let test = foo();
        // console.log(test);
        // console.log(test.next());
        // console.log(test.next());
        // console.log(test.next());
        // console.log(test.next());
        // console.dir(Object);
        // let p = {
        //     firstName:'a',
        //     lastName:'b'
        // }
        // // console.log(p);
        // Object.defineProperty(p,'fullName',{
        //     get(){
        //         return this.firstName + '-' + this.lastName
        //     },
        //     set(value){
        //         console.log(value);
        //         let arr = value.split('-');
        //         console.log(arr);
        //         this.firstName = arr[0];
        //         this.lastName = arr[1];
        //     }
        // })
        // console.log(p);
        // p.firstName = 'i';
        // p.lastName = 'u';
        // p.fullName = 'o-o';
        let p = {
            // firstName:'i',
            // lastName:'u'
        }
        Object.defineProperty(p,'fullName',{
            get(){
                return this.firstName + '-' + this.lastName;
            },
            set(value){
                console.log(value);
                let arr = value.split('-');
                console.log(arr);
                this.firstName = arr[0];
                this.lastName = arr[1];
            }
        })
        console.log(p);
        p.firstName = 'r';
        p.lastName = 'o';
        p.fullName = 'p-o';
    </script>
</body>
</html>